x86-64: fix Lx_DISALLOW_MASK
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 16 Feb 2007 16:34:28 +0000 (16:34 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 16 Feb 2007 16:34:28 +0000 (16:34 +0000)
x86-64's Lx_DISALLOW_MASK values weren't properly taking care of the
NX bit, L3 and L4 were needlessly customized, and the compat mode L3
one wasn't really matching native PAE.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/include/asm-x86/x86_64/page.h

index ecda3a7bf5c5e35ad4d94325050f732fa99ead86..257162398d8cf1dc612db30d65541a56b52f7d4a 100644 (file)
@@ -89,14 +89,14 @@ typedef l4_pgentry_t root_pgentry_t;
  * Permit the NX bit if the hardware supports it.
  * Note that range [62:52] is available for software use on x86/64.
  */
-#define BASE_DISALLOW_MASK (0xFF000180U & ~_PAGE_NX)
+#define BASE_DISALLOW_MASK (0xFF800180U & ~_PAGE_NX)
 
 #define L1_DISALLOW_MASK (BASE_DISALLOW_MASK | _PAGE_GNTTAB)
 #define L2_DISALLOW_MASK (BASE_DISALLOW_MASK)
-#define L3_DISALLOW_MASK (BASE_DISALLOW_MASK | 0x180U /* must-be-zero */)
-#define L4_DISALLOW_MASK (BASE_DISALLOW_MASK | 0x180U /* must-be-zero */)
+#define L3_DISALLOW_MASK (BASE_DISALLOW_MASK)
+#define L4_DISALLOW_MASK (BASE_DISALLOW_MASK)
 
-#define COMPAT_L3_DISALLOW_MASK L3_DISALLOW_MASK
+#define COMPAT_L3_DISALLOW_MASK 0xFFFFF1E6U
 
 #define PAGE_HYPERVISOR         (__PAGE_HYPERVISOR         | _PAGE_GLOBAL)
 #define PAGE_HYPERVISOR_NOCACHE (__PAGE_HYPERVISOR_NOCACHE | _PAGE_GLOBAL)